package collection;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortPoint {
    public static void main(String[] args) {
        List<Point> list = new ArrayList<>();
        list.add(new Point(5,8));
        list.add(new Point(15,60));
        list.add(new Point(100,200));
        list.add(new Point(1,250));
        list.add(new Point(26,3));
        list.add(new Point(13,50));
        System.out.println("list原始数据："+list);

        //jdk1.8时，List集合自身提供了sort方法进行排序，方法中需要传入比较器即可
        list.sort(new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()- o2.getY();
            }
        });

        Collections.sort(list, new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                //return o1.getX()- o2.getX();//按照x坐标升序
                //return o2.getY()- o1.getY();//按照y坐标降序
                int len1 = o1.getX()* o1.getX()+ o1.getY()* o1.getY();
                int len2 = o2.getX()* o2.getX()+ o2.getY()* o2.getY();
                //return len1-len2;//升序
                return len2-len1;//降序
            }
        });
        System.out.println("list排序后数据："+list);

        Collections.sort(list,(o1,o2)->{
            int len1 = o1.getX()* o1.getX()+ o1.getY()* o1.getY();
            int len2 = o2.getX()* o2.getX()+ o2.getY()* o2.getY();
            return len1-len2;//升序
        });
    }
}
